package com.itheima.utils;

import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;

import java.io.IOException;
import java.io.InputStream;
import java.util.UUID;

public class FileUtils {

    // Endpoint以上海为例，其它Region请按实际情况填写。
    private static final String ENDPOINT = "https://oss-cn-shanghai.aliyuncs.com";
    // 阿里云主账号AccessKey拥有所有API的访问权限，风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维，请登录RAM控制台创建RAM账号。
    private static final  String ACCESS_KEY_ID = "LTAI4G3bwkHnJtv9VhdqB7sU";
    private static final  String accessKeySecret = "gAfXn8jf1NC3ehfdzpnNjNvgUFFIfL";
    private static final String bucketName = "cz-115";

    public static String upload(String filename, InputStream inputStream) {
        // <yourObjectName>上传文件到OSS时需要指定包含文件后缀在内的完整路径，例如abc/efg/123.jpg。
        String objectName = UUID.randomUUID().toString() + filename.substring(filename.lastIndexOf("."));
        // 创建OSSClient实例。 1.连接oss
        OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, accessKeySecret);
        // 上传文件到指定的存储空间（bucketName）并将其保存为指定的文件名称（objectName）。2.操作
        ossClient.putObject(bucketName, objectName, inputStream);
        try {
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        // 关闭OSSClient。3.关闭oss连接
        ossClient.shutdown();
        return objectName;
    }

    public static void delete(String path){
        // 创建OSSClient实例。 1.连接oss
        OSS ossClient = new OSSClientBuilder().build(ENDPOINT, ACCESS_KEY_ID, accessKeySecret);
        // 上传文件到指定的存储空间（bucketName）并将其保存为指定的文件名称（objectName）。2.操作
        ossClient.deleteObject(bucketName,path);
        // 关闭OSSClient。3.关闭oss连接
        ossClient.shutdown();
    }

//    public static void main(String[] args) throws FileNotFoundException {
////        System.out.println(FileUtils.upload("01.jpg", new FileInputStream("c:/work/img/01.jpg")));
//        delete("01317e6d-2920-4969-9520-46313ee21c3c.jpg");
//    }

}
